package flex.cc.store.service;

import com.baomidou.mybatisplus.extension.service.IService;
import flex.cc.store.dto.entity.BookingInfoEntity;
import flex.cc.store.dto.vo.BookingInfoVo;
import flex.cc.store.dto.vo.StoreCouponVo;

import java.util.Map;

/**
 * @author wkangle
 * @className BookingInfoService
 * @description 预约信息service
 * @time 2021-12-16 11:10:02
 */
public interface BookingInfoService extends IService<BookingInfoEntity>{

    /**
     * @description 根据参数查询预约信息实体
     * @param params 查询参数
     * @return
     * @author wkangle
     * @time 2021-12-16 13:31:12
     * @exception/throws
     */
    BookingInfoVo getOneByParams(Map<String, Object> params);

    /**
     * @description 根据卡券信息构造预约提交页面信息（从服务券打开）
     * @param storeCouponVo 卡券
     * @return
     * @author wkangle
     * @time 2021/12/16 0016 10:38
     * @exception/throws
     */
    BookingInfoVo openBooking(StoreCouponVo storeCouponVo);

    /**
     * @description 根据预约信息构造预约提交页面信息（重新打开预约提交页面）
     * @param bookingInfoVo 预约信息
     * @return
     * @author wkangle
     * @time 2021/12/16 0016 13:25
     * @exception/throws
    */
    BookingInfoVo reopenBooking(BookingInfoVo bookingInfoVo);

    /**
     * @description 根据卡券信息查询预约信息
     * @param params 卡券信息
     * @return
     * @author wkangle
     * @time 2021/12/16 0016 13:32
     * @exception/throws
    */
    BookingInfoVo bookingInfo(Map<String, Object> params);

    /**
     * @description 预约提交
     * @param reqVo 预约信息
     * @return
     * @author wkangle
     * @time 2021/12/19 0019 18:55
     * @exception/throws
    */
    Map<String, String> saveBooking(Map<String, Object> reqVo);

}
